﻿    /*  桶排序算法[需要额外空间]
    /// 该算法效率O(n).因为假设输入有一定的范围
    /// 将数据通过GetBucket()的函数放入一个桶中（该函数也许会很复杂），
    /// 使得各个桶中的数据均匀才能将算法的效率发挥出来。
    /// 一般来讲会在放入桶中之后，对桶中的小部分数据进行排序，这个排序方法可以让你自己选择。
    /// 如果把桶中的数据看成是链状，则可以使用插入排序。(一般也这么实现)
    /// 本实现，在内部的排序算法的实现过程中偷了懒，使用了框架中存在的数据结构List 来完成
	*******************************************************************************/
#ifndef __BUCKETSORT__
#define __BUCKETSORT__

class BucketSort{
	typedef int * ArrayPtr;
	static int GetBucket(int num);
public:
	static void Sort(ArrayPtr Arr, const int size);
};

#endif